#ifndef LOGIN_H
#define LOGIN_H

#include "lvgl.h"
#include "com/virt_kb/virt_kb.h"

typedef bool (*verify_callback_t)(const char *username, const char *password);

typedef struct {
    lv_obj_t *container;          /* 登录组件的容器 */
    lv_obj_t *username_input;     /* 用户名输入框 */
    lv_obj_t *password_input;     /* 密码输入框 */
    lv_obj_t *show_pwd_label;     /* 显示密码按钮的标签 */
    virt_kb_t *kb;                /* 虚拟键盘 */
    verify_callback_t verify_cb;   /* 验证回调函数 */
} login_t;

/**
 * 创建登录组件
 * @param parent 父对象
 * @param verify_cb 验证回调函数
 * @param kb 虚拟键盘对象
 * @return 返回登录组件对象
 */
login_t* login_create(lv_obj_t *parent, verify_callback_t verify_cb, virt_kb_t *kb);

/**
 * 销毁登录组件
 * @param login 登录组件对象
 */
void login_destroy(login_t *login);

#endif /* LOGIN_H */